package modelo;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class Factura {
	private int numero;
	private float total;
	private List<ItemFactura> itemsFactura;
	private static int proximo;
	
	public Factura(){
		this.numero = getProximo();
		this.total = 0;
		this.itemsFactura = new ArrayList<ItemFactura>();
	}
	
	public Factura(Map<Prenda, Integer> productos) {
		itemsFactura = new ArrayList<ItemFactura>();
		agregarProductos(productos);
	}

	private void agregarProductos(Map<Prenda, Integer> prendas) {
		total = 0;
		for(Map.Entry<Prenda, Integer> entry: prendas.entrySet()) {
			Prenda prenda = entry.getKey();
			int cantidad = entry.getValue();
			itemsFactura.add(new ItemFactura(prenda, cantidad));
			total += prenda.precioVenta() * cantidad;
		}
	}
	public void agregarItem(Prenda prenda, int cantidad){
		ItemFactura item = new ItemFactura(prenda, cantidad);
		itemsFactura.add(item);
		this.total += item.calcularSubtotal();
	}
	
	public static int getProximo(){
		return proximo++;
	}

	public int getNumero() {
		return numero;
	}

	public float getTotal() {
		return total;
	}

	public List<ItemFactura> getItemsFactura() {
		return itemsFactura;
	}
	
}
